package main

//改变一个字符然后形成最长的1字符串,只能改变一位
func reverseBites(num int) int{
	res :=make([]int,50)
	index,m :=0,0
	for i:=0;i<32;i++{
		//&运算，只有1&1才为1 其余都为0
		if num & 1 == 1{
			res[index]++
		}else{
			index++
		}
		//右移位赋值>>=
		num >>=1
	}
	for i:=0 ;i<=index;i++{
		m =Max(m,res[i]+res[i+1]+1)
	}
	return Min(m,32)
}

func Max(a,b int)int{
	if a<b {
		return b
	}else{
		return a
	}
}

func Min(a,b int) int{
	if a>=b {
		return b
	}
	return a
}


//func main(){
//	fmt.Println(reverseBites(100111))
//}